MySQL 效能優化技術分享
MySQL的limit工作原理就是先讀取N筆記錄,然後拋棄前N筆,讀M筆想要的
所以N越大,性能會越差
優化前SQL:
SELECT * 
FROM member 
ORDER BY last_active 
LIMIT 50,5
優化後SQL:
SELECT * 
FROM member 
INNER JOIN 
(
  SELECT member_id 
  FROM member 
  ORDER BY last_active 
  LIMIT 50, 5
) 
USING (member_id)
分別在於,優化前的SQL需要更多I/O浪費
因為先預索引,再讀數據,然後拋棄無需的資料。
而優化後的SQL(子查詢)只讀索引(Cover Index)就可以了
然後,然後利用member_id讀取需要的資料即可。